home *** CD-ROM | disk | FTP | other *** search
/ Ahoy 1985 November / Ahoy_Magazine_85-11_1985_Double_L.d64 / chpopper flight (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  7KB  |  196 lines

  1. 2 rem chopper flight by mike buhidar jr. and kevin woram
  2. 4 cn=0:poke832,0:bc=53280:goto12
  3. 6 printtab(10);
  4. 8 d=d-8:pokecp,d:pokepl,192:forw=1to12:next:pokepl,193
  5. 10 gosub122:forw=1to12:next:return
  6. 12 m1=0:gosub258:gosub132:fa=3:d=215
  7. 14 pokev,164:pokev+31,0:gosub302
  8. 16 print"[147]enter skill level (1-6)"
  9. 18 rm=14:ws=11:gosub258
  10. 20 getsl$:ifval(sl$)<1orval(sl$)>6then20
  11. 22 gosub132
  12. 24 pokev+31,0:ls=192:q=4:m=88:u=83
  13. 26 br$="[149][178][177][178][177][178][177][178][177][178][177]":b2$="[149][178][177][178][177][178][177][178][177][178][177]":hd=4-sl/3:gh=hd-1:md=int(gh*30)
  14. 28 wn$="[149][177][178][177][146] [178][177][178][146] [177][178][146][152][207][183][190]":w2$="[152][188][183][208][149][177][178][177][146] [178][177][178][146] [177][178][146]":ifhd>3thenhd=3
  15. 30 tr$="[149][177][178][177][152][183][183][183][183][149][178][177][178][146]":os$="[149][178][177][178][146]    [177][178][177][146]"
  16. 32 f$="[152][186]          [146][204][146]":sb=13+(2*sl):pokez,peek(z)and239:td=(7-sl)*10
  17. 34 print"[147]":rf$="[152][208][175][175][175][175][175][175][175][175][175][175][146][207]":printrf$spc(rm)rf$:pokev+1,y:pokev,x
  18. 36 gosub374
  19. 38 print"[145]"br$spc(n)br$
  20. 40 forp=1to5:printwn$spc(ws)w2$:printbr$spc(n)br$:printb2$spc(n)b2$:next
  21. 42 pokez,peek(z)or16
  22. 44 ti$="000000":forl4=1tosb:fork=1toq
  23. 46 printwn$spc(ws)w2$:gosub80
  24. 48 printbr$spc(n)br$:gosub80
  25. 50 printb2$spc(n)b2$:gosub80:next
  26. 52 mp=int(rnd(1)*2)*rm:printtab(13+mp)"[129][145][216]":next
  27. 54 printwn$spc(ws)w2$:gosub80
  28. 56 printtr$spc(15)tr$:gosub80:fork=1to3:printos$spc(15)os$:gosub80:next
  29. 58 printos$spc(5)"[152][175][175][175][175][175][175]"spc(4)os$
  30. 60 printf$spc(4)"[152][215][215][215][215][215][215]"spc(4)f$;
  31. 62 print"[152] [183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]":gosub80
  32. 64 cp=833:forp=peek(v+1)to211step2:d=d+8:pokev+1,p:gosub8:next:pokepl,193
  33. 66 print"[158]you did it!":form=1to2000:next
  34. 68 zz=val(ti$):forhh=0to1000:next:pokev,0:gosub358
  35. 70 print"      press trigger to play again."
  36. 72 b=peek(jl)and16:ifb=0then76
  37. 74 goto72
  38. 76 clr:goto16
  39. 78 rem joystick routine
  40. 80 fr=(peek(jl)and16)/16+1:onfrgoto110,116
  41. 82 sp=192:xd=hd:yd=0:return
  42. 84 sp=194:xd=-hd:yd=0:return
  43. 86 sp=ls:xd=0:yd=0:return
  44. 88 sp=ls:yd=-hd:xd=0:return
  45. 90 sp=ls:yd=hd:xd=0:return
  46. 92 sp=194:xd=-hd:yd=-hd:return
  47. 94 sp=194:xd=-hd:yd=hd:return
  48. 96 sp=192:xd=hd:yd=-hd:return
  49. 98 sp=192:xd=hd:yd=hd:return
  50. 100 return
  51. 102 pokebc,8:return
  52. 104 pokebc,2:return
  53. 106 pokehf,20:x1=x:pokev+40,2:gosub284
  54. 108 rem slower fall
  55. 110 gosub122:fa=fa+2:iffa>50then252
  56. 112 gosub240:return
  57. 114 rem faster fall
  58. 116 gosub122:iffa<1thenfa=2
  59. 118 fa=fa-2:gosub240:return
  60. 120 rem sound
  61. 122 pokehf,7:pokelf,53:pokehf,0:pokelf,0:pokehf,7:pokelf,163:pokelf,0:pokehf,0
  62. 124 forg1=0to(50-fa):next
  63. 126 pokehf,7:pokelf,53:pokehf,0:pokelf,0:pokehf,7:pokelf,163:pokelf,0:pokehf,0
  64. 128 return
  65. 130 sprite initialization
  66. 132 print"[147]":pokebc,0:pokebc+1,0
  67. 134 v=53248:pl=2040:pokev+21,7:x=170:y=100:sp=192:pokev+39,15:pokepl,sp
  68. 136 pokepl+1,196:pokev+40,12
  69. 138 pokepl+2,197:pokev+28,4:pokev+41,8:pokev+37,7:pokev+38,2
  70. 140 pokev+29,4:pokev+23,4:print"[147]reading data..."
  71. 142 ifpeek(12660)=150then148
  72. 144 r=12288:forg=1to6:fori=1to63:reada:dc=dc+a:poker,a:r=r+1:next:r=r+1:next
  73. 146 ifdc<>27628thenprint"[147]error in data. . .":stop
  74. 148 jl=56320:n=15:z=53265:cd=53269
  75. 150 pokez,peek(z)and247:pokez,(peek(z)and248)+7:return
  76. 152 rem sprite data
  77. 154 data0,0,0,0,0,0,0,0,0,1,255,255,0,1,0,0,7,192,0,31,240
  78. 156 data192,63,136,224,63,4,255,255,2,255,255,130,0,63,130,0,47,252,0,15,248
  79. 158 data0,6,248,1,4,17,1,140,27,0,255,254,0,0,0,0,0,0,0,0,0
  80. 160 data0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,7,192,0,31,240
  81. 162 data192,63,136,224,63,4,255,255,2,255,255,130,0,63,130,0,47,252,0,15,248
  82. 164 data0,6,248,1,4,17,1,140,27,0,255,254,0,0,0,0,0,0,0,0,0
  83. 166 data0,0,0,0,0,0,0,0,0,255,255,128,0,128,0,3,224,0,15,248,0
  84. 168 data17,252,3,32,252,7,64,255,255,65,255,255,65,252,0,63,248,0,31,240,0
  85. 170 data12,96,0,136,32,128,216,49,128,127,255,0,0,0,0,0,0,0,0,0,0
  86. 172 data0,0,0,0,0,0,0,0,0,0,128,0,0,128,0,3,224,0,15,248,0
  87. 174 data17,252,3,32,252,7,64,255,255,65,255,255,65,252,0,63,248,0,31,240,0
  88. 176 data12,96,0,136,32,128,216,49,128,127,255,0,0,0,0,0,0,0,0,0,0
  89. 178 data0,0,0,0,62,0,0,119,0,0,239,128,0,207,128,0,255,128,0,0,0
  90. 180 data0,127,0,0,127,0,0,127,0,0,62,0,0,62,0,0,62,0,0,28,0
  91. 182 data0,127,0,0,235,128,0,193,128,1,128,192,1,128,192,1,0,64,1,0,64
  92. 184 data0,20,0,0,85,0,1,150,64,5,105,80,5,170,80,38,170,152,42,170,168
  93. 186 data46,170,184,91,190,229,122,255,173,119,255,221,90,255,165,27,190,232
  94. 188 data46,170,184
  95. 190 data42,170,168,5,170,80,5,105,80,1,150,64,0,85,0,0,20,0,0,0,0
  96. 192 rem sprite-data collision
  97. 194 xp=x-24:yp=y-54:cx=int(xp/8):cy=int(yp/8):bb=1104+cx+(40*cy)
  98. 196 p1=peek(bb):p2=peek(bb+1):p3=peek(bb+2):p4=peek(bb+3)
  99. 198 ifp1=uorp2=uorp3=uorp4=uthenreturn
  100. 200 ifp1=morp2=morp3=morp4=mthen204
  101. 202 goto206
  102. 204 pokeh1,50:forl=0to49:next:pokeh1,0
  103. 206 ifp1=(m)then226
  104. 208 ifp2=(m)then228
  105. 210 ifp3=(m)then230
  106. 212 ifp4=(m)then232
  107. 214 rem put explosion here
  108. 216 e$="crashed into a building,"
  109. 218 pokehf,7:x=x-12:y=y-10:pokev+4,x:pokev+5,y:forwa=1to255:pokelf,wa:next
  110. 220 pokev+21,0
  111. 222 pokehf,0:pokelf,0:gosub268
  112. 224 rem pick up man here
  113. 226 ms=ms+1:pokebb,u:return
  114. 228 ms=ms+1:pokebb+1,u:return
  115. 230 ms=ms+1:pokebb+2,u:return
  116. 232 ms=ms+1:pokebb+3,u:return
  117. 234 pokehf,7:x=x-12:y=y-10:pokev+4,x:pokev+5,y:forwa=1to255:pokelf,wa:next
  118. 236 pokehf,0:pokelf,0:return
  119. 238 rem movement routine
  120. 240 jv=n-(peek(jl)andn)+1:tl=int((val(ti$))/td)+1:gosub292
  121. 242 ifpeek(v+31)andx=xthengosub192
  122. 244 ontlgosub100,100,100,102,104,106
  123. 246 onjvgosub86,88,90,100,84,92,94,100,82,96,98:ls=sp
  124. 248 pokepl,sp:x=x+xd:pokev,x:y=peek(v+1)+yd:pokev+1,y:pokepl,sp+1:return
  125. 250 rem hovering routine
  126. 252 fr=(peek(jl)and16)/16+1:iffr=2thenfa=48:goto110
  127. 254 gosub240
  128. 256 gosub122:goto252
  129. 258 rem sound initialization
  130. 260 s=54272:forq=stos+24:pokeq,0:next
  131. 262 pokes+24,15:pokes+5,18:pokes+6,33
  132. 264 pokes+4,129:hf=54273:lf=54272
  133. 266 pokes+12,255:pokes+13,255:pokes+11,17:h1=54280:l1=54279:return
  134. 268 rem end routine
  135. 270 pokebc,0:cn=peek(832):cn=cn+1
  136. 272 print"[147]chopper v -"cn;e$
  137. 274 print"send for replacement pilot immediately!":pokev+5,0:poke832,cn
  138. 276 fork=0to999:next:zz=val(ti$):gosub358
  139. 278 goto70
  140. 280 rem missile moving routine
  141. 282 pokehf,20:x1=int(rnd(0)*68)+144
  142. 284 fory1=255to0step-10:pokelf,(255-y1)
  143. 286 pokev+2,x1:pokev+3,y1:ifpeek(v+30)and1=1thenifpeek(v+30)and2=2then300
  144. 288 next:pokev+31,0:m1=0:return
  145. 290 rem missile select
  146. 292 m1=m1+1:ifm1<mdthenreturn
  147. 294 pokehf,5:pokelf,5
  148. 296 ifm1>md+10then282
  149. 298 return
  150. 300 pokev+2,0:e$="destroyed by enemy fire,":goto218
  151. 302 rem title screen
  152. 304 forl=1to22:print:next
  153. 306 fork=1to3:printtab(19)"[152][194]":next
  154. 308 t$(1)="[159][213][195][195][195][201][213][201][213][201][213][195][195][201][213][195][195][201][213][195][195][201][213][195][195][201][213][195][195][195][201]"
  155. 310 t$(2)="[194] [213][201][194][194][194][194][194][194][213][201][194][194][213][201][194][194][213][201][194][194][213][195][203][194][213][201] [194]"
  156. 312 t$(3)="[194] [194][202][203][194][202][203][194][194][194][194][194][194][202][203][194][194][202][203][194][194][202][195][201][194][202][203] [194]"
  157. 314 t$(4)="[194] [194][213][201][194][213][201][194][194][194][194][194][194][213][195][203][194][213][195][203][194][213][195][203][194][213][201][213][203]"
  158. 316 t$(5)="[194] [202][203][194][194][194][194][194][194][202][203][194][194][194]  [194][194]  [194][202][195][201][194][194][194][194]"
  159. 318 t$(6)="[202][195][195][195][203][202][203][202][203][202][195][195][203][202][203]  [202][203]  [202][195][195][203][202][203][202][203]"
  160. 320 t$(7)="":t$(8)="":j$(1)="[213][195][195][195][201][213][201]  [213][195][195][201][213][195][195][201][213][201][213][201][213][195][195][195][195][201]"
  161. 322 j$(2)="[194][160][213][195][203][194][194][160][160][202][201][213][203][194][213][195][203][194][194][194][194][202][195][201][213][195][203]"
  162. 324 j$(3)="[194][160][202][195][201][194][194][160][160][160][194][194][160][194][194][213][201][194][202][203][194][160] [194][194][160]"
  163. 326 j$(4)="[194][160][213][195][203][194][194][160][160][160][194][194][160][194][194][194][194][194][213][201][194][160] [194][194][160]"
  164. 328 j$(5)="[194][160][194][160][160][194][202][195][201][213][203][202][201][194][202][203][194][194][194][194][194][160] [194][194][160]"
  165. 330 j$(6)="[202][195][203][160][160][202][195][195][203][202][195][195][203][202][195][195][203][202][203][202][203][160] [202][203][160]"
  166. 332 bl$="[194]                   [194]":n1$="[194]michael buhidar jr.[156][194]"
  167. 334 tp$="[156]    [213][195][195][195][195][195][195][195][195][195][195][195][201]":db$="[213][195][195][195][203]designed by[156][202][195][195][195][201]"
  168. 336 an$="[156][194]        and[156]        [194]":n2$="[194]    kevin woram    [156][194]"
  169. 338 cr$="[156][194]                   [156][194]":ed$="[202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203]"
  170. 340 cp=v+1:forl=1to7:gosub8:printtab(5)t$(l):next
  171. 342 forl=1to6:gosub8:printtab(7)j$(l):next
  172. 344 print:gosub8
  173. 346 gosub6:printtp$:gosub6:printdb$:gosub6:printbl$:gosub6
  174. 348 printn1$:gosub6:printan$:gosub6:printn2$
  175. 350 gosub6:printcr$:gosub6:printed$:gosub6:print
  176. 352 printtab(10)"press trigger to play"
  177. 354 b=peek(jl)and16:ifb=0thenreturn
  178. 356 goto354
  179. 358 rem final score
  180. 360 pokebc,0:fs=100*ms*sl+(500-zz):ts=(40-(14+ms))/2
  181. 362 ifms=0thenprint"[147]":printtab(13)"[156]no men rescued":goto370
  182. 364 print"[147]":printtab(ts)"men rescued:  ";:formr=1toms:print"[129][216]";:next:print
  183. 366 printtab(14)"bonus:  ";:forhh=1toms:o=o+100:pokeh1,100:form=1to150:next
  184. 368 pokeh1,0:print""tab(21)o;:next:print
  185. 370 printtab(11)"your score:  "fs""
  186. 372 forjj=0to1000:next:return
  187. 374 rem movement checker
  188. 376 restore
  189. 378 r=12288:forg=1to6:fori=1to63:reada:dc=dc+a:r=r+1:next:r=r+1:next
  190. 380 data173,1,208,201,50,144,7,201,229,176,11,76,49,234,105,4,141,1,208,76
  191. 382 data49,234,233,4,141,1,208,76,49,234
  192. 384 rem interrupt setup
  193. 386 data120,169,0,141,20,3,169,192,141,21,3,88,96
  194. 388 forp=49152to49194:reada:pokep,a:next
  195. 390 sys49182:return
  196.